/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

/**
 * JIT View
 */

#jit-optimizations-view {
  width: 350px;
  min-width: 200px;
  white-space: nowrap;
  --jit-tree-row-height: 14;
  --jit-tree-header-height: 16;
}

/* Override layout styles applied by minimal-xul.css */
#jit-optimizations-view div {
  display: block;
}
#jit-optimizations-view span {
  display: inline-block;
}

#jit-optimizations-view > div {
  /* For elements that need to flex to fill the available space and/or
   * scroll on overflow, we need to use the old flexbox model, since the
   * parent nodes are in the XUL namespace. The new flexbox model can't
   * properly compute dimensions and will ignore `flex: ${number}` properties,
   * since no other parent node has a flex display. */
  display: -moz-box;
  -moz-box-flex: 1;
  -moz-box-orient: vertical;
}

#jit-optimizations-view .optimization-header,
#jit-optimizations-view .tree * {
  /* We can, however, display child nodes as flex to take advantage of
   * horizontal/vertical inlining. */
  display: flex;
}

#jit-optimizations-view .optimization-header {
  height: var(--jit-tree-header-height);
  padding: 2px 5px;
  background-color: var(--theme-tab-toolbar-background);
}

#jit-optimizations-view .header-title {
  font-weight: bold;
  padding-inline-end: 7px;
}

#jit-optimizations-view .tree {
  display: -moz-box;
  -moz-box-flex: 1;
  -moz-box-orient: vertical;
  overflow: auto;
  background-color: var(--theme-body-background);
}

#jit-optimizations-view .tree-node {
  height: var(--jit-tree-row-height);
}

#jit-optimizations-view .tree-node button {
  display: none;
}

#jit-optimizations-view .optimization-outcome.success {
  color: var(--theme-highlight-green);
}
#jit-optimizations-view .optimization-outcome.failure {
  color: var(--theme-highlight-red);
}

.opt-icon::before {
  content: "";
  display: inline-block;
  vertical-align: -2px;
  width: 12px;
  height: 12px;
  max-height: 12px;
  margin-inline-end: 5px;
  background-image: url(chrome://devtools/skin/images/info-small.svg);
  background-repeat: no-repeat;
  background-size: contain;
  -moz-context-properties: fill;
  fill: #808080;
}

.opt-icon.warning::before {
  background-image: url(chrome://devtools/skin/images/alert-small.svg);
  fill: var(--yellow-60);
}

/* Frame Component */
.frame-link {
  margin-inline-start: 7px;
}
